package com.java.controller;

import com.java.domain.BOrder;
import com.java.domain.PageBean;
import com.java.service.BOrderService;
import com.java.service.impl.BOrderServiceImpl;
import net.sf.json.JSONObject;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

// 控制层注解，表示资源路径
@WebServlet(value = "/border/*")
public class BOrderServlet extends BaseServlet{

    // 创建一个业务层对象，共下面方法调用
    private BOrderService bOrderService = new BOrderServiceImpl();

    //查询订单
    public void queryBOrder(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 接受前端的两个值
        int offset = Integer.parseInt(request.getParameter("offset"));
        int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));

        // 将前端传过来的两个值设置到order对象中
        BOrder order = new BOrder();
        order.setOffset(offset);
        order.setPageNumber(pageNumber);

        // 查询到的集合对象 包含所有的订单列表        将上面封装的两个参数传到业务层service
        List<BOrder> bOrders = bOrderService.queryBOrder(order);
        // 调用查询订单数
        int orderTotal = bOrderService.queryBOrderTotal();

        // 返回给网页的数据，需要处理一下  封装成pageBean对象
        PageBean<BOrder> pageBean = new PageBean<>();
        pageBean.setRows(bOrders);
        pageBean.setTotal(orderTotal);

        // 设置返回的数据类型是json格式的，并且编码是utf8的
        response.setCharacterEncoding("utf8");
        response.setContentType("application/json;charset=utf8");

        // request网页的请求，也就是网页向服务器（也就是这个servlet）
        // response响应，反馈给网页的信息

        // 把响应的数据转换成 JSON 类型，因为上面是数据类型的数据，浏览器不认识，需要将它转换成json类型的
        JSONObject jsonObject = JSONObject.fromObject(pageBean);

        // 返回数据的方式之一（异步的方式）
        PrintWriter writer = response.getWriter();

        // 打印给浏览器
        writer.print(jsonObject);

        // 关闭这个流
        writer.close();
    }
    public void delBOrder(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String oid = request.getParameter("oid");
        PrintWriter out = response.getWriter();
        if (bOrderService.delBOrder(oid)>0 ){
            out.println(0);
        }else {
            out.println(1);
        }
    }
}
